package com.towker.core.db;

import java.io.Serializable;
import java.util.List;

import com.towker.core.page.PageModel;
import com.towker.core.page.PageRequest;


/**
 * DAO基类
 * @author zyg
 */
public interface EntityDao<E, PK extends Serializable>
{
	/**
	 * 添加对象
	 * @param entity
	 * @return
	 */
	public void add(E entity);

	/**
	 * 根据主键删除
	 * @param id
	 */
	public int delById(PK id);

	/**
	 * 更新对象
	 * @param entity
	 */
	public int update(E entity);

	/**
	 * 根据主键ID取得对象
	 * @param id
	 * @return
	 */
	public Object getById(PK id);
	
	
	/**
	 * 根据别名取得对象
	 * @param alias
	 * @return
	 */
	public Object getByAlias(String account);

	/**
	 * 取得分页数据
	 * @param pageRequest
	 * @return
	 */
	public PageModel getPage(PageRequest pageRequest);

	/**
	 * 取得全部数据
	 * @param pageRequest,翻页参数不进行使用
	 * @return
	 */
	public List getList(PageRequest pageRequest);
}
